package com.situ.dao;

import java.util.*;



import java.util.List;


import com.situ.common.Assist;
import com.situ.entity.IvArchive;
import com.situ.entity.IvIninvoice;
import org.apache.ibatis.annotations.*;

/**
 * IvArchive的Dao接口
 *
 * @author
 */
@Mapper
public interface IvArchiveDao {
	@Select("select b.ID,b.StartNo,b.EndNo,b.Counts,d.Used,d.Invalid,b.ArchiveDate,c.EmpNmae EmpName1,a.EmpNmae EmpName2 from  SY_Emp a " +
			" inner join  IV_Archive b on  a.id=b.EmpID " +
			"inner join SY_Emp c on c.id=b.ArchiveEmpID " +
			"inner join IV_Invoice d on  d.ArchiveID=b.ID")
	public List<Map> queryfapiao();

    /**
     * 获得IvArchive数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
     *
     * @param assist
     * @return
     */

    /**

     * 获得IvArchive数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
     *
     * @param assist
     * @return
     */
    long getIvArchiveRowCount(Assist assist);

    /**
     * 获得IvArchive数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
     *
     * @param assist
     * @return
     */
    List<IvArchive> selectIvArchive(Assist assist);

    /**
     * 通过IvArchive的id获得IvArchive对象
     *
     * @param id
     * @return
     */
    IvArchive selectIvArchiveById(Object id);


    /**
     * 获得一个IvArchive对象,以参数IvArchive对象中不为空的属性作为条件进行查询,返回符合条件的第一条
     *
     * @param obj
     * @return
     */
    IvArchive selectIvArchiveObjSingle(IvArchive obj);

    /**
     * 获得一个IvArchive对象,以参数IvArchive对象中不为空的属性作为条件进行查询
     *
     * @param obj
     * @return
     */
    List<IvArchive> selectIvArchiveByObj(IvArchive obj);

    /**
     * 插入IvArchive到数据库,包括null值
     *
     * @param
     * @return
     */
    int insertIvArchive(IvArchive ivout);

    /**
     * 插入IvArchive中属性值不为null的数据到数据库
     *
     * @param value
     * @return
     */
    int insertNotNullIvArchive(IvArchive value);

    /**
     * 批量插入IvArchive到数据库,包括null值
     *
     * @param value
     * @return
     */
    int insertIvArchiveByBatch(List<IvArchive> value);

    /**
     * 通过IvArchive的id删除IvArchive
     *
     * @param id
     * @return
     */
    int deleteIvArchiveById(Object id);

    /**
     * 通过辅助工具Assist的条件删除IvArchive
     *
     * @param assist
     * @return
     */
    int deleteIvArchiveByAssist(Assist assist);

    /**
     * 通过IvArchive的id更新IvArchive中的数据,包括null值
     *
     * @param enti
     * @return
     */
    int updateIvArchiveById(IvArchive enti);

    /**
     * 通过IvArchive的id更新IvArchive中属性不为null的数据
     *
     * @param enti
     * @return
     */
    int updateNotNullIvArchiveById(IvArchive enti);

    /**
     * 通过辅助工具Assist的条件更新IvArchive中的数据,包括null值
     *
     * @param value
     * @param assist
     * @return
     */
    int updateIvArchive(@Param("enti") IvArchive value, @Param("assist") Assist assist);


    int updateNotNullIvArchive(@Param("enti") IvArchive value, @Param("assist") Assist assist);
}